import os
import sys
import time
from model import generate_model_insights

def main():
    """
    生成模型洞察数据，用于电影评分预测和展示
    """
    print("="*60)
    print("电影数据分析系统 - 模型生成工具")
    print("="*60)
    print("\n本工具将：")
    print("1. 加载合并后的电影数据")
    print("2. 训练线性回归模型分析导演和类型影响力")
    print("3. 生成模型洞察数据供前端使用")
    print("="*60)
    
    # 确认运行
    response = input("\n是否开始生成模型数据? (y/n): ")
    if response.lower() != 'y':
        print("操作已取消。")
        return
    
    print("\n开始处理数据...\n")
    start_time = time.time()
    
    try:
        # 运行模型生成
        model_data = generate_model_insights()
        
        if model_data:
            end_time = time.time()
            print(f"\n模型生成成功！耗时 {end_time - start_time:.2f} 秒")
            print(f"预测准确度 (R²): {model_data['test_score']:.4f}")
            print("\n主要发现:")
            
            # 显示顶级导演影响力
            print("\n【导演影响力 TOP5】")
            for i, (director, impact) in enumerate(model_data['directors_impact'][:5], 1):
                print(f"{i}. {director}: {impact:+.2f}")
            
            # 显示顶级类型影响力
            print("\n【类型影响力 TOP5】")
            for i, (genre, impact) in enumerate(model_data['genres_impact'][:5], 1):
                print(f"{i}. {genre}: {impact:+.2f}")
            
            print("\n模型数据已保存到: vue-dashboard/src/data/model_insights.json")
            print("可以开始前端应用 (cd vue-dashboard && npm run dev)")
        else:
            print("\n模型生成失败，请检查数据文件和依赖项。")
    
    except Exception as e:
        print(f"\n错误: {e}")
        print("\n模型生成失败，请检查错误信息。")

if __name__ == "__main__":
    main() 